home *** CD-ROM | disk | FTP | other *** search
/ Plug-In Power Pack for Netscape Communicator / Plug-In Power Pack for Netscape Communicator.iso / plugins / dataviews / include / dvgr.h < prev    next >
C/C++ Source or Header  |  1997-06-30  |  16KB  |  382 lines

  1. #ifndef DVGR_H
  2. #define DVGR_H
  3. /*   file name -- dvGR.h
  4. |===================================================================
  5. |
  6. |                         copyright (c) 1987
  7. |                          V.I. Corporation
  8. |
  9. |    dvGR - defines and declarations for use with GR graphics primitives
  10. |
  11. |    alan morse        12 sep 84    Derived from dvprim.hdr
  12. |     alan morse    1 Oct 86    Add flags for GX*intersect
  13. |     chris hoffmann    31 jan 91    Added RAS_GPIX, SPIX, mask & drawpart
  14. |
  15. |===================================================================
  16. */
  17.  
  18. /*===================================================================
  19. |
  20. |    GRrasquery flags indicating the type of question being asked
  21. |    of the device.
  22. */
  23. #define RAS_MOVE     11
  24. #define RAS_DRAW     12
  25. #define RAS_GET     13
  26. #define RAS_CREATE    14
  27. #define RAS_SAVE    15
  28. #define RAS_GPIX    16
  29. #define RAS_SPIX    17
  30. #define RAS_SPIXELS    18
  31. #define RAS_DRAWPART    19
  32. #define RAS_SMASK    20
  33. #define RAS_SPXRP       21
  34. #define RAS_GPXRP    22
  35. #define RAS_SMASKPXRP    23
  36.  
  37. /* Possible answers returned by GRrasquery */
  38. #define YES_BUT_SLOW     20
  39. #define YES_BUT_MSC     40    /* Machine specific changes */
  40.  
  41. /*====================================================================
  42. |
  43. |    GRlocate and GRcr_poll macros that help extract information about
  44. |    the keyboard or button event that might have occurred.  Users
  45. |    of these routines should always use these macros to determine
  46. |    the nature of the event.  Currently, the convention is that
  47. |    numbers in the range [1,3] are the buttons on the mouse
  48. |    (numbered from left to right), NULL (0) means there was no
  49. |    key or button press, and the others [4,126] correspond to
  50. |    key board presses.  (NOTE that some key presses may have been
  51. |    intercepted by the system and are therefore impossible.)
  52. */
  53.  
  54. /* Button flags */
  55. #define V_BUTTON1 1
  56. #define V_BUTTON2 2
  57. #define V_BUTTON3 3
  58.  
  59. /* Macro to SET the information for a given mouse button press */
  60. /* ONLY used internally by GR device driver routines. */
  61. #define GR_SET_BUTTON(button_number) ((int)(0x3 & button_number))
  62.  
  63. /* Macro to GET the number of the mouse button that was pressed.  */
  64. /* The result is NULL if no button was pressed */
  65. #define GR_BUTTON(key_code) ((int)((key_code>3)?0:key_code))
  66.  
  67.  
  68. /* Macro to SET the information for a given keyboard keypress */
  69. /* ONLY used internally by GR device driver routines. */
  70. #define GR_SET_KEY(key) ((int)((key>3)?key:0))
  71.  
  72. /* Macro to SET the information for a given function key keypress */
  73. /* ONLY used internally by GR device driver routines. NEEDED BY VT340 */
  74. #ifdef VMS
  75. #define GR_SET_FUNCTION_KEY(key) (((int)(key)>127)?0:((int)(key)|0x0080))
  76. #endif
  77.  
  78. /* Macro to GET the keyboard key that was pressed.  */
  79. /* The result is NULL if no key was pressed */
  80. #define GR_KEY(key_code) ((int)((key_code>3)?key_code:0))
  81.  
  82.  
  83. /*===================================================================
  84. |
  85. |    CR_EVENT flags.  These specify the events that the cursor poll
  86. |    routine is to use as its criteria for returning.  See the
  87. |    description of GRcr_event for an explanation of how these
  88. |    flags affect the operation of GRcr_poll.
  89. */
  90. #define V_LOC_CHANGE_WAIT   1
  91. #define V_LOC_PICK_WAIT     2
  92. #define V_LOC_NO_WAIT       3
  93. #define V_LOC_PICK_NO_WAIT  4
  94.  
  95. /*===================================================================
  96. |
  97. |    Flags indicating the relationship of an object
  98. |    to a viewport. These are returned by the GX*Intersect routines.
  99. */
  100. #define V_INSIDE_VP      1 /* Entirely inside the viewport */
  101. #define V_OUTSIDE_VP     0 /* Entirely outside the viewport */
  102. #define V_INTERSECTS_VP -1 /* Partially inside the viewport */
  103.  
  104. /*===================================================================
  105. |
  106. |    Flags relating to setting and querying the status of trailing edges
  107. |    in the input stream, i.e. whether "up" key transitions can be or
  108. |    should be reported as well as "down" key transitions.  Some
  109. |    devices have trailing edges reported on the locater device but
  110. |    not on the keyboard.
  111. |    These flags are used by the GRcr... routines.
  112. */
  113. #define V_TRL_OFF    0  /* trailing edges selected */
  114. #define V_TRL_ON    1  /* trailing edges not selected */
  115. #define V_TRL_CAPABLE    2  /* trailing edges capability */
  116. #define V_TRL_KBCAPABLE    4  /* no trailing edges capability on kb*/
  117.  
  118. /*
  119. |===================================================================
  120. |
  121. |    new structures and constants for GR extensions
  122. |
  123. |===================================================================
  124. */
  125.  
  126. /*
  127.  * Window Event structure for GRwe_poll routine.
  128.  */
  129. typedef struct _winevent
  130. {
  131.    int devnum;        /* device number of window on which event occurred */
  132.    ULONG type;        /* type of event */
  133.    ULONG time;        /* time of event */
  134.    LONG count;        /* at least this many more events */
  135.    ADDRESS eventdata;    /* device-dependent structure with more data */
  136.    DV_POINT loc;        /* location of cursor relative to window */
  137.    RECTANGLE region;    /* exposed region (EXPOSE) */
  138.    DV_POINT maxpoint;    /* new size of window (CONFIGURENOTIFY) */
  139.    ULONG state;    /* state of modifier keys */
  140.    ULONG button;    /* button code for mouse button events */
  141.    ULONG keycode;    /* physical key code */
  142.    ULONG keysym;    /* virtual key symbol code */
  143.    char *keystring;    /* key string equivalent */
  144.    LONG nchars;         /* length of ascii string */
  145.    UBYTE firstchar;    /* first ascii character of key string */
  146.    RECTANGLE *rectlist; /* array of consecutive exposed regions */
  147.    DV_POINT root_loc;      /* absolute location of cursor on display device */
  148. } WINEVENT;
  149. /*
  150.  * GRwe_poll polling modes.
  151.  */
  152. #define V_WAIT        1
  153. #define V_NO_WAIT    2
  154. #define V_PEEK        3 /* unsupported */
  155. #define V_PEEK_NO_WAIT    3 /* unsupported */
  156.  
  157. /*
  158.  * GRwe_poll polling sources.
  159.  */
  160. #define V_CURRENT_WINDOW     1
  161. #define V_MULTIPLE_WINDOW    2
  162.  
  163. /*===================================================================
  164. |
  165. |    Flags for representing event types and setting the event mask
  166. */
  167. #define V_ALL_MASKED_EVENTS    (0)
  168. #define V_KEYPRESS        (1<<0)
  169. #define V_KEYRELEASE        (1<<1)
  170. #define V_BUTTONPRESS        (1<<2)
  171. #define V_BUTTONRELEASE        (1<<3)
  172. #define V_MOTIONNOTIFY         (1<<4)
  173. #define V_ENTERNOTIFY        (1<<5)
  174. #define V_LEAVENOTIFY        (1<<6)
  175. #define V_EXPOSE        (1<<7)
  176. #define V_RESIZE        (1<<8)
  177. #define V_WINDOW_QUIT        (1<<9)
  178. #define V_WINDOW_ICONIFY    (1<<10)
  179. #define V_NON_STANDARD_EVENT    (1<<11)
  180. #define V_NON_DV_WINDOW_EVENT   (1<<12)
  181.  
  182. #define V_EVENTS_OFF        (1<<16)
  183. #define V_NO_EVENT        (1<<17)
  184. #define V_ADD_TO_MASK        (1<<18)
  185.  
  186. #define V_XWINDOW_MASK        (1<<24)
  187. #define V_SUNVIEW_PICK_MASK    (1<<25)
  188. #define V_SUNVIEW_KBD_MASK    (1<<26)
  189. #define V_WINNT_MASK            (1<<27)
  190.  
  191. /* WINEVENT state mask flags */
  192.  
  193. #define V_STATE_SHIFT        (1<<0)
  194. #define V_STATE_LOCK        (1<<1)
  195. #define V_STATE_CONTROL        (1<<2)
  196. #define V_STATE_MOD1        (1<<3)
  197. #define V_STATE_MOD2        (1<<4)
  198. #define V_STATE_MOD3        (1<<5)
  199. #define V_STATE_MOD4        (1<<6)
  200. #define V_STATE_MOD5        (1<<7)
  201. #define V_STATE_BUTTON1        (1<<8)
  202. #define V_STATE_BUTTON2        (1<<9)
  203. #define V_STATE_BUTTON3        (1<<10)
  204. #define V_STATE_BUTTON4        (1<<11)
  205. #define V_STATE_BUTTON5        (1<<12)
  206.  
  207. /*
  208.  * GRget/GRset flags
  209.  */
  210.  
  211. #define V_OPEN_SET_MAGIC 0x55500000
  212. #define V_OPEN (1 << 0)
  213. #define V_GET  (1 << 1)
  214. #define V_SET  (1 << 2)
  215.  
  216. #define V_BUILD_FLAG(when, arg_count, value) \
  217.    ((ULONG)(  (0xfff00000 & V_OPEN_SET_MAGIC) \
  218.             | (0x000f0000 & ((when) << 16)) \
  219.             | (0x0000fff0 & ((value) << 4)) \
  220.             | (0x0000000f & ((arg_count) << 0))))
  221.  
  222.  
  223. #define V_IS_GET_FLAG(flag) ((((flag) & 0xfff00000) == V_OPEN_SET_MAGIC) \
  224.                              && ((flag) & (V_GET << 16)))
  225.                                    
  226. #define V_IS_SET_FLAG(flag) ((((flag) & 0xfff00000) == V_OPEN_SET_MAGIC) \
  227.                              && ((flag) & (V_SET << 16)))
  228.                                    
  229. #define V_IS_OPEN_FLAG(flag) ((((flag) & 0xfff00000) == V_OPEN_SET_MAGIC) \
  230.                               && ((flag) & (V_OPEN << 16)))
  231.  
  232. #define V_ARG_COUNT(flag) (flag & 0x0000000f)
  233.                
  234.  
  235. #define V_IS_VALID_FLAG(flag) ((   ((flag) & 0xfff00000) == V_OPEN_SET_MAGIC)\
  236.                                &&  ((flag) & 0x000f0000) \
  237.                                && (((flag) & 0x0000fff0) < 0x8000) \
  238.                                && (V_ARG_COUNT(flag) < 3))
  239.                                    
  240.                                    
  241. /* drawing context parameters */
  242. #define V_END_OF_LIST        0  
  243. #define V_VARARG_LIST        0x1  /* internal */
  244.  
  245.  
  246. /* draw function and it's possible values */
  247. #define V_DRAW_FUNCTION        V_BUILD_FLAG(V_GET|V_SET|V_OPEN,1, 0x001)
  248. #define V_XOR            1
  249. #define V_COPY            2
  250.  
  251. /* window system data structures */
  252. #define V_INPUT_FD        V_BUILD_FLAG(V_GET,         1, 0x100)
  253. #define V_WINDOW_ID        V_BUILD_FLAG(V_OPEN|V_GET,    1, 0x101)
  254. #define V_DISPLAY        V_BUILD_FLAG(V_OPEN|V_GET,    1, 0x102)
  255. #define V_SHELL                 V_BUILD_FLAG(V_GET|V_OPEN,    1, 0x103)
  256. #define V_DRAW_WIDGET           V_BUILD_FLAG(V_GET|V_OPEN,    1, 0x104)
  257. #define V_CURSOR        V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x105)
  258. #define V_ICON            V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x106)
  259. #define V_ICON_NAME             V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x107)
  260. #define V_MOTION_COLLAPSE       V_BUILD_FLAG(V_SET|V_OPEN,    1, 0x108)
  261. #define V_EXPOSE_COLLAPSE       V_BUILD_FLAG(V_SET|V_OPEN,    1, 0x109)
  262. #define V_DV_WINEVENT_ONLY      V_BUILD_FLAG(V_SET|V_OPEN,    1, 0x10A)
  263.  
  264. /* various dimensions */
  265. #define V_WINDOW_WIDTH        V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x200)
  266. #define V_WINDOW_HEIGHT        V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x201)
  267. #define V_WINDOW_X        V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x202)
  268. #define V_WINDOW_Y        V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x203)
  269. #define V_WINDOW_NAME        V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x204)
  270. #define V_CLUT_DEPTH        V_BUILD_FLAG(V_GET,        1, 0x205)
  271. #define V_RASTER_DEPTH        V_BUILD_FLAG(V_GET,        1, 0x206)
  272. #define V_EVENTS_REPORTED    V_BUILD_FLAG(V_GET,        1, 0x207)
  273.  
  274. /* VI predefined cursors */
  275. #define V_ACTIVE_CURSOR        V_BUILD_FLAG(V_SET|V_OPEN,    0, 0x300)
  276. #define V_INITIAL_CURSOR    V_BUILD_FLAG(V_SET|V_OPEN,    0, 0x301)
  277.  
  278. /* queries about capabilities of driver/system */
  279. #define V_HAS_WINEVENTS        V_BUILD_FLAG(V_GET,        1, 0x400)
  280. #define V_HAS_PLANE_MASKING    V_BUILD_FLAG(V_GET,        1, 0x401)
  281. #define V_HAS_XOR        V_BUILD_FLAG(V_GET,        1, 0x402)
  282. #define V_IS_BLACK_AND_WHITE    V_BUILD_FLAG(V_GET,        1, 0x403)
  283. #define V_IS_WINDOW_SYSTEM    V_BUILD_FLAG(V_GET,        1, 0x404)
  284. #define V_NUM_FONTS            V_BUILD_FLAG(V_GET,        1, 0x405)
  285. #define V_NUM_MBFONTS            V_BUILD_FLAG(V_GET,        1, 0x406)
  286.  
  287. /* SunView-specific data structures */
  288. #define V_SV_CURSOR        V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x500)
  289. #define V_SV_CANVAS        V_BUILD_FLAG(V_GET|V_OPEN,1, 0x501)
  290. #define V_SV_FRAME        V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x502)
  291. #define V_SV_ICON        V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x503)
  292. #define V_SV_FRAME_WIDTH    V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x504)
  293. #define V_SV_FRAME_HEIGHT    V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x505)
  294. #define V_SV_FRAME_X        V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x506)
  295. #define V_SV_FRAME_Y        V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x507)
  296. #define V_SV_FRAME_LABEL    V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x508)
  297.  
  298. /* X11-specific data structures */
  299. #define V_X_WINDOW_ID        V_BUILD_FLAG(V_GET|V_OPEN,    1, 0x600)
  300. #define V_X_DISPLAY        V_BUILD_FLAG(V_GET|V_OPEN,    1, 0x601)
  301. #define V_X_DISPLAY_NAME    V_BUILD_FLAG(V_GET|V_OPEN,    1, 0x602)
  302. #define V_X_APPLIC_CLASS        V_BUILD_FLAG(V_GET|V_OPEN,    1, 0x603)
  303. #define V_X_APPLIC_NAME         V_BUILD_FLAG(V_GET|V_OPEN,    1, 0x604)
  304. #define V_X_ARGC        V_BUILD_FLAG(V_OPEN,        1, 0x605)
  305. #define V_X_ARGV          V_BUILD_FLAG(V_OPEN,        1, 0x606)
  306. #define V_X_CURSOR        V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x607)
  307. #define V_X_ICON        V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x608)
  308. #define V_X_ICON_WIDTH          V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x609)
  309. #define V_X_ICON_HEIGHT         V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x60A)
  310. #define V_X_SHELL               V_BUILD_FLAG(V_GET|V_OPEN,    1, 0x60B)
  311. #define V_X_DRAW_WIDGET         V_BUILD_FLAG(V_GET|V_OPEN,    1, 0x60C)
  312. #define V_X_FONTSTRUCT          V_BUILD_FLAG(V_SET|V_GET|V_OPEN,2, 0x60D)
  313. #define V_X_APPLIC_CONTEXT     V_BUILD_FLAG(V_GET|V_OPEN,    1, 0x60E)
  314. #define V_X_RAS_SYNC           V_BUILD_FLAG(V_GET|V_SET|V_OPEN,1, 0x60F)
  315. #define V_XT_INITIALIZED        V_BUILD_FLAG(V_GET|V_SET|V_OPEN,1, 0x610)
  316. #define V_X_OPTIONS        V_BUILD_FLAG(V_OPEN,        1, 0x611)
  317. #define V_X_OPTIONS_COUNT    V_BUILD_FLAG(V_OPEN,        1, 0x612)
  318. #define V_X_EXPOSURE_BLOCK    V_BUILD_FLAG(V_OPEN|V_SET|V_GET,1, 0x613)
  319. #define V_X_RESIZE_BLOCK    V_BUILD_FLAG(V_OPEN|V_SET|V_GET,1, 0x614)
  320. #define V_X_DOUBLE_BUFFER    V_BUILD_FLAG(V_OPEN|V_SET|V_GET,1, 0x615)
  321. #define V_X_COLORMAP        V_BUILD_FLAG(V_OPEN|V_SET|V_GET,1, 0x616)
  322. #define V_X_PIXELS        V_BUILD_FLAG(V_OPEN|V_SET|V_GET,2, 0x617)
  323. #define V_X_PLANES        V_BUILD_FLAG(V_OPEN|V_SET|V_GET,2, 0x618)
  324. #define V_X_GC            V_BUILD_FLAG(V_GET,             1, 0x619)
  325. #define V_X_POLY_HINT        V_BUILD_FLAG(V_OPEN|V_SET|V_GET,1, 0x61A)
  326. #define V_X_IMAGE_STRING    V_BUILD_FLAG(V_OPEN|V_SET|V_GET,1, 0x61B)
  327. #define V_X_DASH_STYLE        V_BUILD_FLAG(V_OPEN|V_SET|V_GET,1, 0x61C)
  328. #define V_X_ICON_X        V_BUILD_FLAG(V_OPEN,            1, 0x61D)
  329. #define V_X_ICON_Y        V_BUILD_FLAG(V_OPEN,            1, 0x61E)
  330. #define V_X_ICONIC        V_BUILD_FLAG(V_OPEN,            1, 0x61F)
  331. #define V_X_MBFONTSTRUCT        V_BUILD_FLAG(V_SET|V_GET|V_OPEN,2, 0x620)
  332.  
  333. /* VWS (UIS, GPX) specific data structures */
  334. #define V_UIS_CURSOR        V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x701)
  335. #define V_UIS_ICON        V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x702)
  336. #define V_UIS_EVENT_FLAG    V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x703)
  337. #define V_UIS_VD_ID        V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x704)
  338. #define V_UIS_KB_ID        V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x705)
  339.  
  340.  
  341. /* MF-specific data structures */
  342. #define V_MF_PACKRGB        V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x801)
  343. #define V_MF_NUMTEXTSIZES    V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x802)
  344.  
  345. /* NT windows flags go here */
  346. #define VI_EXPOSE   WM_USER + 30
  347. #define VI_RESIZE   WM_USER + 31
  348. #define VI_CLOSE    WM_USER + 32
  349. #define VI_ERR      WM_USER + 33
  350. #define V_WIN_CLASS             V_BUILD_FLAG(            V_OPEN,1, 0x900)
  351. #define V_WIN_STYLE             V_BUILD_FLAG(            V_OPEN,1, 0x901)
  352. #define V_CLASS_NAME            V_BUILD_FLAG(            V_OPEN,1, 0x902)
  353. #define V_HINSTANCE             V_BUILD_FLAG(            V_OPEN,1, 0x903)
  354. #define V_PREV_INSTANCE         V_BUILD_FLAG(            V_OPEN,1, 0x904)
  355. #define V_WIN32_NEWFONT            V_BUILD_FLAG(V_SET      |V_OPEN,2, 0x905)
  356. #define V_WIN32_WINDOW_HANDLE      V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x906)
  357. #define V_WIN32_CURSOR             V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x907)
  358. #define V_WIN32_WINDOWPROC         V_BUILD_FLAG(      V_GET       ,1, 0x908)
  359. #define V_WIN32_DOUBLE_BUFFER      V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x909)
  360. #define V_WIN32_XORFLAG            V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x90a)
  361. #define V_WIN32_IS_DV_DEVICE       V_BUILD_FLAG(      V_GET       ,2, 0x90b)
  362. #define V_WIN32_HPALETTE           V_BUILD_FLAG(      V_GET|V_OPEN,1, 0x90c)
  363. #define V_WIN32_ICON_NAME          V_BUILD_FLAG(V_SET|V_GET|V_OPEN,1, 0x90d)
  364. #define VP_PRINT_ORIENTATION       V_BUILD_FLAG(V_SET             ,1, 0x90e)
  365. #define VP_PRINT_SCALE             V_BUILD_FLAG(V_SET             ,1, 0x90f)
  366. #define VP_PRINT_QUALITY           V_BUILD_FLAG(V_SET             ,1, 0x911)
  367. #define VP_PRINT_DEVICE            V_BUILD_FLAG(V_SET             ,1, 0x913)
  368. #define VP_PRINT_PORT              V_BUILD_FLAG(V_SET             ,1, 0x914)
  369. #define VP_PRINT_DRIVER            V_BUILD_FLAG(V_SET             ,1, 0x915)
  370. #define VP_PRINT_NO_WARNING        V_BUILD_FLAG(V_SET             ,1, 0x916)
  371. #define VP_PRINT_DOCUMENT_NAME     V_BUILD_FLAG(V_SET             ,1, 0x917)
  372. #define VP_PRINT_ITER_COUNT        V_BUILD_FLAG(V_SET             ,1, 0x918)
  373. #define V_WIN32_DC                 V_BUILD_FLAG(      V_GET       ,1, 0x919)
  374. /* end of the NT windows flags */
  375.  
  376. /* keep some old names working */
  377. #define V_X_FORM V_X_DRAW_WIDGET
  378. #define V_FORM V_DRAW_WIDGET
  379.  
  380. #endif
  381.  
  382.